About the DrawDib Functions
Collectively,
the DrawDib functions are similar to the StretchDIBits
You will find
it beneficial to use the DrawDib functions in some circumstances. Still, StretchDIBits
is more diverse than the DrawDib functions and should be used when the DrawDib
functions cannot provide the desired functionality. The following list
describes factors to consider when deciding whether to use the DrawDib
functions or StretchDIBits.
Color table information
format. DrawDib functions display images that use the DIB_RGB_COLORS format
for their color table. If images in your application store color table
information with the DIB_PAL_COLORS or DIB_PAL_INDICES format, you must use StretchDIBits
to display them.
Transfer mode. DrawDib
functions require that your application use the SRCCOPY transfer mode. If your
application uses StretchDIBits with a transfer mode other than SRCCOPY,
you should continue to use StretchDIBits. Similarly, if you need to use
other raster operations in your application, such as an XOR, use StretchDIBits.
Quality of video and
animation playback. You can use the DrawDib functions for data-streaming
applications, such as those that play video clips and animated sequences. The
DrawDib functions outperform StretchDIBits in that they provide higher-quality images and
improve motion during playback.
Display adapters.
DrawDib functions support a greater number of display adapters than StretchDIBits
supports. The DrawDib functions support VGA color adapters that provide
16-color palettes using 4-bit image depth, SVGA adapters that provide 256-color
palettes using 8-bit image depth, and true-color display adapters that provide
thousands of colors using 16-bit, 24-bit, and 32-bit image depths.
The DrawDib functions also improve the speed and quality of displaying
images on display adapters with more limited capabilities. For example, when
using an 8-bit display adapter, the DrawDib functions efficiently dither
true-color images to 256 colors. They also dither 8-bit images when using 4-bit
display adapters.
Image-stretching. Like StretchDIBits,
the DrawDib functions use source and destination rectangles to control the
portion of an image that is displayed. You can crop unwanted portions of an
image or stretch an image by varying the position and size of the source and
destination rectangles. If a display driver does not support image-stretching,
the DrawDib functions provide more efficient stretching capabilities than StretchDIBits.
Compressed images. The
DrawDib functions support several compression and decompression methods,
including run-length encoding, JPEG, Cinepak, 411 YUV, and Indeo.